/**
 * 字典下拉框，带模糊查询
 * 如果没有列出请自行扩展要用的字典类型
 * 只需在getType中添加case项
 * 对应表t_dictionary_type 字段 DICTTYPECODE
 * zhangnf 20150928
 */
var dictCtrl  = new XFApp.client();
XFApp.client.prototype.dictionary = {
	urlItems : {
		dictBaseURL: basePath+"/qp/dict"
	},
	/**
	 * 返回表单属性
	 * @param dictType 字典类型
	 **/
	getTypeId : function(dictTypeCode){
		switch(dictTypeCode){
			case "wfyORn" : return 1000;//是否
			case "workflowApprove" : return 1001;//审批状态
			case "wfAction" : return 1002;//审批类型
			case "fileType" : return 1003;//文件类型
			case "customsCode" : return 1004;//海关代码
			case "measureUnit" : return 1005;//海关计量单位
			case "currency" : return 1006;//海关币制
			case "orderType" : return 1007;//海关订单类型
			case "nation" : return 1008;//海关国家
			case "transferMode" : return 1009;//海关运输方式
			case "transferName" : return 1010;//海关运输工具
			case "tradeMode" : return 1011;//海关贸易方式
			case "loctno" : return 1012;//监管场所代码
			case "feeMark" : return 1013;//海关运费标志
			case "wrapType" : return 1014;//海关包装种类
			case "customerDocketStatus" : return 1015;//客户状态
			case "goodsDocketStatus" : return 1016;//商品状态
			case "orderDocketStatus" : return 1017;//订单跟踪状态
			case "orderStatus" : return 1018;//订单状态
			case "toDocketStatus" : return 1019;//运单状态
			case "billDocketStatus" : return 1020;//清单状态
			case "customerSource" : return 1021;//客户来源
			case "customerBizType" : return 1022;//客户业务类型
			case "customerNeedService" : return 1023;//客户所需服务
			case "customerIndustry" : return 1024;//客户所属行业
			case "customerAttr" : return 1025;//客户性质
			case "customerDocketStatusSearch" : return 1026;//客户查询状态
			case "isDistribution" : return 1027;//是否分配
			case "customerCooperationDocketStatus" : return 1028;//合作状态查询
			case "destinationport" : return 1029;//指运港代码
			case "trademode" : return 1030;//贸易方式
			case "goodsNewStatus" :return 10161;//新疆地方版的商品备案状态
			case "orderNewStatus" :return 2500;//新疆地方版的订单状态
			case "transNewStatus" :return 2600;//新疆地方版的运单状态
			case "billNewStatus" :return 2700;//新疆地方版的清单状态

			case "CERT_TYPE_CODE"  				:return 3036;//国检企业附件单据类型
			case "BIZ_TYPE_CODE"   				:return 3035;//国检附件业务类型
			case "REGIST_OVERSEA"  				:return 3031;//国检境内外标志
			case "BUSINESS_TYPE"   				:return 3029;//国检进出口标志位
			case "COMPANY_SUBJECT" 				:return 3028;//国检备案主体
			case "ENT_STATUS"      				:return 3025;//国检企业备案状态
			case "PRODUCT_STATUS"      			:return 3026;//国检商品备案状态
			case "ENT_TYPE"        				:return 3027;//国检企业类别
			case "ENT_REG_PLACE_CODE"        	:return 3000;//国检注册地代码
			case "COUNTRY_REGION"        		:return 2900;//国检国家地区
			case "MONITOR_ORG_CODE"        		:return 3010;//国检监管机构代码
			case "ENTER_OUT_FLAG"        		:return 3039;//国检出入境标志
			case "TRADE_MODE"        			:return 3049;//国检销售方式

			case "iqOrderStatus" 				:return 3051;//国检三单状态
			case "iqBillStatus" 				:return 3045;//国检清单状态

			case "paymentmark":return 3100;
			case "transmode":return 3101;
			case "cutmode":return 3102;
			case "entrytype":return 3103;
			case "sysstatus":return 3104;
			case "dutymode":return 3105;
			case "qptradeMode" : return 3106;//海关贸易方式
			default : return null;
		}
	},
	/**
	 * 获取数据并且渲染
	 * @param dictTypeCode 字典名称
	 * @param valueInput 隐藏输入框，存储选项值便于表单提交和回显
	 * @param displayId 显示输入框ID 如果为空 则取dictTypeCode
	 * 	对应表t_dictionary_type 字段 DICTTYPECODE
	 */
	load : function(dictTypeCode,valueInput,displayId){
		_this = this;
		if(null == displayId){
			displayId = dictTypeCode;
		}
		var dictTypeId = this.getTypeId(dictTypeCode);

		$("#"+displayId).attr("data-id","");
		//$("#"+valueInput).val("");
		$("#"+displayId).bind("blur",function(){
			$("#"+valueInput).val($("#"+displayId).attr("data-id"));
		});

		$.ajax( {
			url:_this.urlItems.dictBaseURL+"/getByDictTypeId?dictTypeId="+dictTypeId,
			data:{
				dictTypeId : dictTypeId
			},
			type:'post',
			cache:false,
			dataType:'json',
			success:function(data) {
				$("#"+displayId).bsSuggest({
					idField: "dictCode",
					keyField: "dictName",
					effectiveFields :["dictCode","dictName"],
					effectiveFieldsAlias:{dictCode:"编码",dictName:"名称"},
					data: {
						'value':data.result
					}
				});
				var val = $("#"+valueInput).val();
				if(""!=val){
					$.each(data.result, function(i,item){
						if(item.dictCode == val){
							$("#"+displayId).val(item.dictName);
							$("#"+displayId).attr("data-id",val);
							return true;
						}
					});
				}

			},
			error : function() {
				console.log("字典查询异常");
			}
		});
	},

	/**
	 * 获取数据并且渲染
	 * @desc 翻译对应的dictCode-->dictName
	 * @param dictTypeCode 字典名称
	 * 	对应表t_dictionary_type 字段 DICTTYPECODE
	 */
	translate : function(dictTypeCode){
		_this = this;
		var result = "";
		var dictTypeId = this.getTypeId(dictTypeCode);

		$.ajax({
			url:_this.urlItems.dictBaseURL+"/getByDictTypeId?dictTypeId="+dictTypeId,
			data:{
				dictTypeId : dictTypeId
			},
			type:'post',
			cache:false,
			async: false,
			dataType:'json',
			success:function(data) {
				result = data.result ;
			},
			error : function() {
				console.log("字典查询异常");
			}
		});
		return result;
	},

	//获取字典数据
	getDictData: function(dictTypeCode,dictCode){
		var dictTypeId = this.getTypeId(dictTypeCode);
		var result = "";
		$.ajax( {
			url:_this.urlItems.dictBaseURL+"/getByDictTypeIdAndCode?dictTypeId="+dictTypeId,
			data:{
				dictTypeId : dictTypeId,
				dictCode : dictCode
			},
			type:'post',
			cache:false,
			dataType:'json',
			async:false,
			success:function(data) {

				result = data.result;
			},
			error : function() {
				console.log("字典查询异常");
				result = "";
			}
		});
		return result;
	}
};